1. Technical Field
This disclosure relates generally to a digital processing system for transferring data received from a user to another location on a multicomputer data network such that other network users can remotely access the data originally received from the user. More specifically, the digital processing system disclosed herein receives data from a user and makes that data available for remote access by other users within the system. However, in order to make that data available, a method is disclosed herein for receiving the data, analyzing the data, and storing the data for access by other users.
2. Description of the Related Art
Conventional data tables use a location based identifier to differentiate each input in a table. For example, conventional data tables may be organized by rows and columns such that a reference to a particular row and a reference to a particular column identifies an input at the intersection of the particular row and the particular column. Applications have been created to allow users to create digital tables, also known as spreadsheets, which allow users to create data tables digitally. Conventional spreadsheet applications such as Microsoft® Excel®, Google Sheets™, and Zoho® Docs each allow users to create spreadsheets to perform analysis on various types of data values (e.g., numbers, text, dates, etc.). In some spreadsheet applications, a user can operate on certain data values with mathematical formulas by creating relationships between different data inputs, also known as cells, in the spreadsheet.
In one example, a spreadsheet may be identified by columns A, B, and C and rows 1, 2, and 3. The intersection of column A and row 1 is a cell referred to as A1. Other cells in the spreadsheet may be identified by the corresponding intersections of columns and rows (e.g., B1, B2, C2). A user may provide input into one of the cells. For example, the user may input the number “100” into cell A1, therefore assigning a data input to a particular location within the spreadsheet application. In cell A2, for example, a user may input a mathematical formula to perform a mathematical operation on the number in cell A1. For example, the user may input a formula “=A1+5” into cell A2, instructing the spreadsheet application that the number to be input in cell A2 equals the number contained in cell A1 plus 5. Accordingly, cell A2 would display the number “105.” Further, if the input number in cell A1 was changed by a user, cell A2 would change because the mathematical formula defining the mathematical operators of cell A2 depends on the value of the number in cell A1. While this example is a simple example, skilled operators of spreadsheet applications may construct substantially more elaborate and complicated spreadsheets as needed to provide desired results.
Conventional spreadsheets have used the intersection of a row and column within the spreadsheet to identify a particular cell, regardless of the input in the actual cell. In other words, cell A1 always identifies the cell at the intersection of column A and row 1 regardless of the value data contained within cell A1. Accordingly, certain spreadsheet applications have conventionally allowed a user to access value data contained within a cell within one spreadsheet in another spreadsheet. More specifically, a user may input a file path into one cell of one spreadsheet that instructs the cell to retrieve value data contained within another cell of another spreadsheet and import that cell's value data into that one cell of that one spreadsheet. This feature is rarely used by at least some users because in order for a user to import a particular cell, the user must know exactly which cell to access. Accordingly, the user must manually navigate to the another spreadsheet and determine the location of the desired cell in that spreadsheet. Once the correct cell is identified, the user can input the file path that was just manually navigated into a particular cell and provide the cell location of the desired cell. This process is tedious and inefficient, and therefore rarely used by at least some users. Regardless, the location of the cell within the spreadsheet in terms of row and column position is still the basis for identifying the cell. Because a user must know exactly which spreadsheet contains the desirable cell value data, where the desirable cell value data is within the spreadsheet, and exactly where the spreadsheet is stored, other users, even if provided with access to the location of the stored spreadsheet, may spend a substantial amount of time locating the spreadsheet and/or the particular cell within the spreadsheet.
One solution for this problem has been to provide “named ranges” for one or more cells within a spreadsheet application. For example, a user may be allowed to give a name to a particular cell. Thus, instead of referring to cell A1, the cell may be named “MyData,” for example. Thus, any other cell that uses the value data contained within cell A1 may be referenced in that other cell by the name “MyData” instead of A1. Accordingly, using the simple example above, the mathematical formula “=MyData+5” in cell A2 would still result in a value of “105” for cell A2. While this solution provides for some enhanced functionality by making somewhat complex formulas that refer to multiple cells more readable, these named ranges are commonly implemented in ways that are substantially error prone, inconvenient, and require a significant level of effort from the user to maintain consistency through a spreadsheet.
Accordingly, conventional spreadsheet applications experience several deficiencies. First, conventional spreadsheet applications require a user to manually name a particular cell or range of cells in order to reference that cell or those particular cells using the chosen name in the same spreadsheet or even in other spreadsheets. This manual naming process not only requires a substantial amount of time to implement, manual naming provides for non-standard naming conventions that are difficult for other users to even understand, much less refer to from another spreadsheet. Further, these non-standard naming conventions can cause substantial difficulty to another user attempting to decipher the meaning of particular names or terms used by a user who created the spreadsheet.
Second, because conventional spreadsheet applications rely on the row and column intersection location to identify a cell, other cells that reference particular cells within the named ranges can be inadvertently changed by moving a particular cell or named range of cells to another location. For example, if a formula in one cell references cell A1 and the formula from the simple example above (=A1+5) was moved (copied and pasted, dragged, or otherwise incorporated) into cell B2, the formula in cell B2 would be automatically updated to reference a value of B1 instead of A1 (i.e., the formula in cell B2 would become=B1+5). However, if the named range feature was used, moving the formula from A2 (in this example, =MyData+5) into B2 would provide the exact same formula in B2. In other words, both A2 and B2 would contain the formula=MyData+5. This may or may not be the desired result of the user when the formula of cell A2 was moved into cell B2, and is often not consistent with what the user would expect, based on what would have happened if the same formula moving operation was executed on a formula with a location based reference, rather than a named reference. Because this movement of value data from one cell to another by copying and pasting, dragging, or other incorporation, is a frequently used method for constructing a spreadsheet, the inconsistencies caused by moving value data in named ranges can create serious errors in the spreadsheet.
Third, conventional spreadsheet applications do not provide a user with the ability to refer or link to a particular cell or sub-range of cells within a named range. For example, if a named range includes an entire row of cells (e.g., row A) named “RowA”, conventional spreadsheet applications do not allow a user to access, for example, a second entry within that named range by referencing the name RowA. A user may only access the second entry within the named range by location (e.g., A2).
Fourth, conventional spreadsheet applications only provide access to named ranges for other users when those other users have access to the underlying files that store spreadsheets where those named ranges are defined. In the event that particular spreadsheets are stored on one particular user's computer, other users may or may not have access to those spreadsheets or those named ranges. Additionally, if the user that created the spreadsheets didn't have their computer with them, they may have difficulty accessing those named ranges. Further, additional issues may be created when one user creates a formula that refers or links to a named range from a particular spreadsheet in a different file while another user updates the named range in the original spreadsheet. Because conventional spreadsheet applications fail to update named ranges that are stored in different files correctly, the imported named range may inappropriately refer to an old version of the named range without the user's knowledge.
Fifth, conventional spreadsheet applications fail to account for name collisions and other spreadsheet merging issues. For example, if two spreadsheets contain a range of cells with the same name, conventional spreadsheet applications cannot properly evaluate the formulas in the spreadsheets when the spreadsheets are combined. Since simple range names are often used in spreadsheet applications (including numerical or financial terms, such as “n,” “count,” or “WACC”), name collisions are a fairly frequent occurrence. Thus, when conventional spreadsheet applications encounter these name collisions, they require the users to manually rename each range, requiring a substantial amount of time from the spreadsheet user while, at the same time, potentially creating confusion concerning the meaning of the renamed ranges.
Sixth, conventional spreadsheet applications contain no indication that a named range is being used in a particular spreadsheet. If one user who did not create the spreadsheet is reviewing a spreadsheet, that user may only find out that named ranges are being used within the spreadsheet by chance, when they encounter references to those named ranges in others cells in the spreadsheet. Accordingly, in order to ensure accuracy in the results of a particular spreadsheet, a user may be required to deconstruct the spreadsheet and reconstruct the spreadsheet to ensure that each reference in each cell correctly refers to the correct cell(s). However, deconstructing and reconstructing a spreadsheet application is a tedious, inefficient, and time consuming effort.
Finally, conventional spreadsheet applications make navigating and browsing named ranges a time consuming endeavor. Accordingly, any operation to rename a named range, change the boundaries of a named range, delete or add named ranges, or other operations can present substantial difficulty to the user. Because conventional spreadsheet applications do not necessarily identify named ranges in a way that ensures the user can readily and accurately interact with a named range, a user must review each cell of a named range to determine whether or not that cell is appropriate and desired for inclusion and use in the named range.
Accordingly, it is one object of this disclosure to provide a multicomputer network system that provides a spreadsheet application that allows a user to refer to cells without reference to an intersection of a particular row and column. It is another object of this disclosure to provide a database that allows a user to access specified groups of cells across multiple spreadsheets without reference to long and arbitrary file system paths that may be difficult to read and maintain.
Another object of this disclosure is to simplify the inclusion of particular groups of cells into a spreadsheet by consistent identification and nomenclature standards across the multicomputer network system. Finally, it is another object of this disclosure to provide a multicomputer network system that performs a contextual analysis of value data within one or more cells and appropriately analyze, assign, and store a reference tag for that value data. It is a further object of this disclosure to provide a multicomputer network system that provides a spreadsheet program that allows a user to reference one or more cells within the reference tag.